package src.example.商场收银系统.v2;

/**
 * 简单工厂模式：有新类型活动时增加一个具体的实现类然后再在工厂中增加一个判断
 * 不是新类型就在加一个判断打几折这种即可。然后再修改客户端代码。
 * 有没有更好的方法呢？下面使用策略模式来实现
 * 其中：我们的接口就是抽象策略，然后打几折、正常收费就是具体的策略。
 *
 */
public class Client {
    public static void main(String[] args) {
        src.example.商场收银系统.v2.CashSuper cashSuper = src.example.商场收银系统.v2.CashFactory.generate("打8折");
        double totalPrice = cashSuper.getTotalPrice(10, 1.6);
        System.out.println(totalPrice);

        src.example.商场收银系统.v2.CashSuper cashSuper1 = src.example.商场收银系统.v2.CashFactory.generate("正常收费");
        double price = cashSuper1.getTotalPrice(10, 1.6);
        System.out.println(price);
    }
}
